<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 箭头函数有几个使用注意点。

    // （1）箭头函数没有自己的this对象（详见下文）。

    // （2）不可以当作构造函数，也就是说，不可以对箭头函数使用new命令，否则会抛出一个错误。

    // （3）不可以使用arguments对象，该对象在函数体内不存在。如果要用，可以用 rest 参数代替。

</script>
<script>
    // 普通函数
    // function fn() {
    //     console.log(arguments);
    // }
    // fn(1, 4, 7, 2, 5, 8, 3, 6, 9);


    // 注意: 箭头函数中不存在 arguments 对象,不能使用, 如果要用，可以用 rest 参数代替。
    // var fn = (a) => {
    //     console.log(arguments);
    // }
    // fn(1, 4, 7, 2, 5, 8, 3, 6, 9);

    // Rest参数 (合并剩余参数 => 将剩余参数整合到数组中) 可以理解为是扩展运算符的逆应用
    // 注意: Rest参数必须是最后一个形式参数

    // var fn = (...list) => {  // ...list =>  1, 4, 7, 2, 5, 8, 3, 6, 9
    //     console.log(list);
    // }
    // fn(1, 4, 7, 2, 5, 8, 3, 6, 9);

    // var fn = (a, b, ...list) => {
    //     // a = 1
    //     // b = 4;
    //     // ...list =>   7, 2, 5, 8, 3, 6, 9
    //     console.log(list);
    // }
    // fn(1, 4, 7, 2, 5, 8, 3, 6, 9);

    // var fn = (...list, a, b) => { // 报错
    //     console.log(list);
    // }
    // fn(1, 4, 7, 2, 5, 8, 3, 6, 9);



</script>

</html>